/*
 * Copyright 2020-2030 ALPHA LAB.Inc All Rights Reserved.
 */
package com.alphalab.framework.exception;

import java.text.MessageFormat;

/**
 * 未受检基类异常.
 * @author allen
 * @version 1.0.0 2020年2月27日
 */
public class MoRuntimeException extends RuntimeException {
	
	/**
	 * 错误码.
	 */
	private String errorCode;
	
	/**
	 * 初始化异常实例.
	 * @param newErrorCode 错误码
	 * @param message 错误描述
	 */
	public MoRuntimeException(String newErrorCode, String message) {
		super(message);
		errorCode = newErrorCode;
	}

	/**
	 * 初始化异常实例.
	 * @param newErrorCode 错误码
	 * @param message 错误描述
	 * @param messageParams 错误描述占位符值
	 */
	public MoRuntimeException(String newErrorCode, String message, Object... messageParams) {
		super(MessageFormat.format(message, messageParams));
		errorCode = newErrorCode;
	}
		
	/**
	 * 初始化异常实例.
	 * @param newErrorCode 错误码
	 * @param cause 异常信息栈
	 */
	public MoRuntimeException(String newErrorCode, Throwable cause) {
		super(cause);
		errorCode = newErrorCode;
	}
	
	/**
	 * 初始化异常实例.
	 * @param newErrorCode 错误码
	 * @param message 错误描述
	 * @param cause 异常信息栈
	 */
	public MoRuntimeException(String newErrorCode, String message, Throwable cause) {
		super(message, cause);
		errorCode = newErrorCode;
	}

	/**
	 * 获取错误码.
	 * @return String
	 */
	public String getErrorCode() {
		return errorCode;
	}
	
	/**
	 * 获取异常描述.
	 * @return String
	 */
	@Override
	public String getMessage() {
		return super.getMessage();
	}
	
}
